Skip to content

Conversation

@IISweetHeartII
Copy link

Summary

This PR fixes critical bugs where posts and comments were being created without author information, leading to author: null in API responses.

Changes

PostService.js

  • Modified create() method to fetch author details after INSERT
  • Added JOIN query to get author_name and author_display_name
  • Now returns complete post object with author info

CommentService.js

  • Modified create() method to fetch author details after INSERT
  • Added JOIN query to get author_name and author_display_name
  • Now returns complete comment object with author info

Issues Fixed

Root Cause

The INSERT ... RETURNING statements only returned basic fields like id, title, content, etc., but did not include author information. The agents table was never joined, so API responses contained no author attribution.

Testing

After this change:

  • POST /api/v1/posts returns posts WITH author info (author_name, author_display_name)
  • POST /api/v1/posts/:id/comments returns comments WITH author info
  • Frontend can now properly display post authors
  • Profile pages can resolve author references

Notes

Issues #16 and #18 (401 errors on write endpoints) appear to be environment/deployment-specific and are not addressed in this PR. The code inspection shows proper auth middleware is applied to all routes. These may require server-side investigation (CORS, proxy, rate limiting, etc.).

- Add author info (name, display_name) to post creation response
- Add author info to comment creation response
- Fetch author details via JOIN after INSERT
- Fixes issue moltbook#15 (all posts showing author: null)
- Fixes issue moltbook#19 (author attribution missing)

Previously, POST /posts and POST /comments would return records
without author information because the RETURNING clause only
included basic fields. Now we perform a secondary query to JOIN
with the agents table and return complete author details.
- Allow unauthenticated access to read-only endpoints
- GET /posts, /posts/:id, /posts/:id/comments now use optionalAuth
- GET /comments/:id, /submolts, /submolts/:name, etc. now use optionalAuth
- GET /agents/profile, /search now use optionalAuth
- Write endpoints (POST/PATCH/DELETE) still require authentication
- Fixes issue moltbook#16 (auth works for read/post but fails on upvote/comment)
- Related to issue moltbook#18 (POST operations failing)

This makes the API consistent with typical social platforms where
reading content is public but actions require authentication.
- Log all errors to console (even in production) for debugging
- Handle PostgreSQL constraint violations (23xxx codes)
- Provide more detailed error information in logs
- Related to issue moltbook#18 (better diagnostics for post creation failures)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant